package com.yonyougov.devops.cruxcisupport.version;

import com.yonyougov.devops.cruxcisupport.util.CruxDevOpsIdGenerator;
import com.yonyougov.devops.fwc.core.entity.BasicEntity;
import com.yonyougov.devops.fwc.core.id.IdGenerator;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigInteger;
import java.util.Date;

/***
 * t_version
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class VersionEntity extends BasicEntity implements Serializable {

    /***
     * 主键
     */
    private BigInteger id;

    /***
     * 创建时间
     */
    private Date createTime;

    /***
     * 版本名称
     */
    private String versionName;

    /***
     * 应用id
     */
    private BigInteger appId;

    /***
     * 是否是开发版本
     */
    private Boolean developVersion;

    /**
     * 状态  0 停用  1 启用  2 弃用
     */
    private Integer status;

    /**
     * 生成下载地址
     *
     */

    private String url;

    /***
     * 获取主键
     *
     * @return 获取主键
     */
    public BigInteger getId() {
        return id;
    }

    /***
     * 设置主键
     *
     * @param id 主键
     */
    public void setId(BigInteger id) {
        this.id = id;
    }

    /***
     * 获取创建时间
     *
     * @return 获取创建时间
     */
    public Date getCreateTime() {
        return createTime;
    }

    /***
     * 设置创建时间
     *
     * @param createTime 创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /***
     * 获取版本名称
     *
     * @return 获取版本名称
     */
    public String getVersionName() {
        return versionName;
    }

    /***
     * 设置版本名称
     *
     * @param versionName 版本名称
     */
    public void setVersionName(String versionName) {
        this.versionName = versionName;
    }

    /***
     * 获取应用id
     *
     * @return 获取应用id
     */
    public BigInteger getAppId() {
        return appId;
    }

    /***
     * 设置应用id
     *
     * @param appId 应用id
     */
    public void setAppId(BigInteger appId) {
        this.appId = appId;
    }

    public Boolean getDevelopVersion() {
        return developVersion;
    }

    public void setDevelopVersion(Boolean developVersion) {
        this.developVersion = developVersion;
    }

    @Override
    public String toString() {
        return "VersionEntity{" +
                "id=" + id +
                ", createTime=" + createTime +
                ", versionName='" + versionName + '\'' +
                ", appId=" + appId +
                ", developVersion=" + developVersion +
                '}';
    }

    //<!--用户自定义代码开始-->
    public IdGenerator idGenerator() {
        return new CruxDevOpsIdGenerator();
    }
    //<!--用户自定义代码结束-->
}
